home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1237 / 1237.xpi / chrome / chromeFiles / content / browserOverlay.js next >
Text File  |  2006-08-03  |  5KB  |  162 lines

  1. //QuickJava 0.4 by Doug Greene
  2.  
  3. //Version History
  4. //Version 0.4.2 Changes: Updated installer for 1.5-3.0a1, fixed memory leak bug.
  5. //Version 0.4.1 Changes: Updated Installer for FF1.5 support
  6. //Version 0.4 Changes: Added middle click support
  7. //Version 0.3 Changes: Added preference monitor service.
  8. //Version 0.2 Changes: Updated graphics
  9. //Version 0.1 Original Version
  10.  
  11.     var quickJava_prefs = Components.classes["@mozilla.org/preferences-service;1"].
  12.         getService(Components.interfaces.nsIPrefBranch);
  13.     var quickJavaScript_currentSet = quickJava_prefs.getBoolPref("javascript.enabled");
  14.     var quickJava_currentSet = quickJava_prefs.getBoolPref("security.enable_java");
  15.  
  16.  
  17. // When the Java Icon is clicked toggle the status
  18. function onStatusBarJavaClick(event) {
  19.   // event.button == 2 // right
  20.   if (event.button == 0) {
  21.     quickJava_toggle();
  22.   }
  23.   if (event.button == 1) {
  24.     quickJava_toggle();
  25.     quickJavaScript_toggle();
  26.   }
  27.   if (event.button != 0 && event.button != 1) {
  28.     quickJava_updateIcons();
  29.   }
  30.     return true;
  31. }
  32.  
  33. // When the JavaScript Icon is clicked toggle the status
  34. function onStatusBarJavaScriptClick(event) {
  35.   // event.button == 2 // right
  36.   if (event.button == 0) {
  37.     quickJavaScript_toggle();
  38.   }
  39.   if (event.button == 1) {
  40.     quickJava_toggle();
  41.     quickJavaScript_toggle();
  42.   }
  43.   if (event.button != 0 && event.button != 1) {
  44.     quickJava_updateIcons();
  45.   }
  46.  
  47.     return true;
  48. }
  49.  
  50. // Update the icons after a slight delay (for on load)
  51. function quickJava_updateIconsDelay()
  52. {
  53.     //Load the current settings
  54.     quickJavaScript_currentSet = quickJava_prefs.getBoolPref("javascript.enabled");
  55.     quickJava_currentSet = quickJava_prefs.getBoolPref("security.enable_java");
  56.     //Set the icons
  57.     setTimeout("setJavaIcon(quickJava_currentSet)",1250);
  58.     setTimeout("setJavaScriptIcon(quickJavaScript_currentSet)",1250);
  59.     return true;
  60. }
  61.  
  62.  
  63. // Update the icons 
  64. function quickJava_updateIcons()
  65. {
  66.     //Load the current settings
  67.     quickJavaScript_currentSet = quickJava_prefs.getBoolPref("javascript.enabled");
  68. //alert(quickJavaScript_currentSet);
  69.     quickJava_currentSet = quickJava_prefs.getBoolPref("security.enable_java");
  70. //alert(quickJava_currentSet);
  71.     //Set the icons
  72.     setJavaIcon(quickJava_currentSet);
  73.     setJavaScriptIcon(quickJavaScript_currentSet);
  74. //    alert("Java icon = " + quickJava_currentSet + "\nJavaScript icon = " + quickJavaScript_currentSet);
  75.     return true;
  76. }
  77.  
  78. function quickJava_toggle()
  79. {
  80.     quickJava_setOnOff(!quickJava_currentSet);
  81. }
  82.  
  83. function quickJavaScript_toggle()
  84. {
  85.     quickJavaScript_setOnOff(!quickJavaScript_currentSet);
  86. }
  87.  
  88. function quickJava_setOnOff(onOff)
  89. {
  90.     quickJava_prefs.setBoolPref("security.enable_java", onOff);
  91.     setJavaIcon(onOff);
  92.     quickJava_currentSet = onOff;
  93. }
  94.  
  95. function quickJavaScript_setOnOff(onOff)
  96. {
  97.     quickJava_prefs.setBoolPref("javascript.enabled", onOff);
  98.     setJavaScriptIcon(onOff);
  99.     quickJavaScript_currentSet = onOff;
  100. }
  101.  
  102. function setJavaIcon(onOff) {
  103.     if (!window.statusbar.visible)
  104.         return;
  105.   document.getElementById('quickJava-status').setAttribute("status", onOff ? "1" : "0");
  106. }
  107.  
  108. function setJavaScriptIcon(onOff) {
  109.     if (!window.statusbar.visible)
  110.         return;
  111.   document.getElementById('quickJavaScript-status').setAttribute("status", onOff ? "1" : "0");
  112. }
  113.  
  114. var myPrefObserver =
  115. {
  116.   register: function()
  117.   {
  118.     var observingPrefsActive = false;
  119.     var prefService = Components.classes["@mozilla.org/preferences-service;1"]
  120.                                 .getService(Components.interfaces.nsIPrefBranchInternal);
  121.     this._branch = prefService.QueryInterface(Components.interfaces.nsIPrefBranchInternal);
  122.     this._branch.addObserver("", this, false);
  123.     quickJava_updateIcons();
  124.   },
  125.  
  126.   unregister: function()
  127.   {
  128.     if(!this._branch) return;
  129.     this._branch.removeObserver("", this);
  130.   },
  131.  
  132.   observe: function(aSubject, aTopic, aData)
  133.   {
  134.     if(aTopic != "nsPref:changed") return;
  135.     // aSubject is the nsIPrefBranch we're observing
  136.     // aData is the name of the pref that's been changed (relative to aSubject)
  137.     switch (aData) {
  138.       case "javascript.enabled":
  139.         // javascript.enabled was changed
  140.       quickJava_updateIcons();
  141.         break;
  142.       case "security.enable_java":
  143.         // security.enable_java was changed
  144.       quickJava_updateIcons();
  145.         break;
  146.     }
  147.   }
  148. }
  149.  
  150. window.addEventListener('load',evtLoad,false);
  151. window.addEventListener('unload',evtUnload,false);
  152.  
  153. function evtLoad(evt)
  154. {
  155.    myPrefObserver.register();
  156. }
  157.  
  158. function evtUnload(evt)
  159. {
  160.    myPrefObserver.unregister();
  161. }
  162.